// 
const path = require('path');

const express = require('express');
const expressArtTemplate = require('express-art-template');

// 为模板绑定过滤器
expressArtTemplate.template.defaults.imports.format = require('dateformat');

const port = 8080;
const app = express();

// 使用 app.locals 添加的 属性 可以在 模板上直接使用
// 但是 过滤器 不可以在这里设置
app.locals.employees = ['孙二娘', '扈三娘', '顾大嫂', '105个男人'];

// 处理静态资源 ( public 是所有静态资源所在目录 )
app.use(express.static('public'));

// 告诉express框架使用什么模板引擎渲染什么后缀的模板文件
app.engine('art', expressArtTemplate);

const templateRoot = path.join(__dirname, 'views'); // 确定模板文件根目录

// 告诉express框架模板存放的位置是什么
// 第一个参数views是固定的,是express的配置项名字，告诉express框架模板存放的位置
app.set('views', templateRoot);

const extname = 'art'; // 指定模板文件的后缀
app.set('view engine', extname);

app.get('/list', (req, resp) => {

    // 指定模板文件的基本名称
    let basename = 'list';
    // 指定在模板上使用的数据
    let data = {
        array: [
            { name: '张大丰', gender: '靓仔', birthdate: new Date('1230-12-12') },
            { name: '张二丰', gender: '靓仔', birthdate: new Date('1232-08-12') },
            { name: '张三丰', gender: '靓仔', birthdate: new Date('1235-05-12') }
        ]
    }

    // 渲染模板
    // 1、在 模板文件基本名称 之前 添加 路径
    // 2、在 模板文件基本名称 之后 添加 后缀
    // 3、将 数据 和 模板 拼接在一起
    // 4、将 拼接 后的结果 发送给 客户端
    resp.render(basename, data);
});

app.listen(port);